package org.activision.model.npc;

import org.activision.model.Animation;
import org.activision.model.Entity;
import org.activision.model.Walking;
import org.activision.util.RSTile;
import org.activision.util.rs2cache.NpcDefinitions;

@SuppressWarnings("serial")
public class Npc extends Entity {

	private int id;
	private int hp;
	
    private Mask mask;
    private Walking walk;
	private NpcDefinitions npcdefinition;
	
    public Npc(short id, RSTile location) {
    	this.setId(id);
    	this.setLocation(location);
        this.setMask(new Mask(this));
        this.setWalk(new Walking(this));
        this.setNpcdefinition(NpcDefinitions.forID(id));
    }
    
    @Override
    public void animate(int id) {
        this.getMask().setLastAnimation(new Animation((short)id, (short)0));
        this.getMask().setAnimationUpdate(true);
    }

    @Override
    public void animate(int id, int delay) {
        this.getMask().setLastAnimation(new Animation((short)id, (short) delay));
        this.getMask().setAnimationUpdate(true);
    }

    @Override
    public void graphics(int id) {
        // TODO Auto-generated method stub

    }

    @Override
    public void graphics(int id, int delay) {
        // TODO Auto-generated method stub

    }

    @Override
    public void heal(int amount) {
        // TODO Auto-generated method stub

    }

    @Override
    public void hit(int damage) {
        // TODO Auto-generated method stub

    }

    @Override
    public void resetTurnTo() {
        // TODO Auto-generated method stub

    }

    @Override
    public void turnTemporarilyTo(Entity entity) {
        // TODO Auto-generated method stub

    }

    @Override
    public void turnTo(Entity entity) {
        // TODO Auto-generated method stub

    }

	public void setId(int id) {
		this.id = id;
	}

	public int getId() {
		return id;
	}

	public void setHp(int hp) {
		this.hp = hp;
	}

	public int getHp() {
		return hp;
	}

	public void setMask(Mask mask) {
		this.mask = mask;
	}

	public Mask getMask() {
		return mask;
	}

	public void setWalk(Walking walk) {
		this.walk = walk;
	}

	public Walking getWalk() {
		return walk;
	}

	public void setNpcdefinition(NpcDefinitions npcdefinition) {
		this.npcdefinition = npcdefinition;
	}

	public NpcDefinitions getNpcdefinition() {
		return npcdefinition;
	}

	@Override
	public void graphics2(int id) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void graphics2(int id, int delay) {
		// TODO Auto-generated method stub

	}
}